/*为类class定义方法直接类的名字不需要function
引用js文件需要用import{导入的文件name}from'导入的文件所在的路径,路径需要使用相对路径，不能使用绝对路径'
以下是封装wx.request
*/
import{config}from'../config.js'

const tip = {
    1:'抱歉出现了一个错误',
    1005:'appkey无效，请到www.7yue.pro申请',
    3000:'期刊不存在'
}

class HTTP{
    request(params){
        //params所有参数url，data，method
         if(!params.method){
            params.method="GET"
        }
       wx.request({
         url: config.api_base_url+params.url,
         method:params.method,
         data:params.data,
         header:{
             'content-type':'application/json',
             'appkey':config.appkey
         },
         success:(res)=>{
             //statusCode是一个数字需要转换成字符串
           let code = res.statusCode.toString() 
           //用startsWith和endsWith判断状态码
           if(code.startsWith('2')){
               //判断调用方是否传入success的值是否为空
              params.success && params.success(res.data)//返回给调用方class.js中传递的params,服务器调用成功
            }
            //服务器调用异常，向用户显示错误提醒，用小程序的wx.showToast({})，用错误码err_code判断
            else{
                let error_code = res.data.error_code//定义errorcode
                this._show_error(error_code)
            }
         },
         fail:(err)=>{
                this._show_error(1)//直接提示一个错误
         }
       })
    }

    //自定义的私有方法_
    _show_error(error_code){
        if(!error_code){
          error_code = 1
        }
        wx.showToast({
        title:tip[error_code],
        icon: 'none',
        duration:2000
        })
    }
}

export {HTTP}